{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "941e7f19",
   "metadata": {
    "papermill": {
     "duration": 0.009574,
     "end_time": "2022-04-12T18:07:50.743986",
     "exception": false,
     "start_time": "2022-04-12T18:07:50.734412",
     "status": "completed"
    },
    "tags": []
   },
   "source": [
    "Taken from https://www.kaggle.com/slawekbiel/positive-score-with-detectron-1-3-input-data/notebook - please upvote!"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "215fa2cf",
   "metadata": {
    "_cell_guid": "b1076dfc-b9ad-4769-8c92-a6c4dae69d19",
    "_kg_hide-input": true,
    "_kg_hide-output": true,
    "_uuid": "8f2839f25d086af736a60e9eeb907d3b93b6e0e5",
    "execution": {
     "iopub.execute_input": "2022-04-12T18:07:50.766897Z",
     "iopub.status.busy": "2022-04-12T18:07:50.765822Z",
     "iopub.status.idle": "2022-04-12T18:08:27.508526Z",
     "shell.execute_reply": "2022-04-12T18:08:27.507728Z",
     "shell.execute_reply.started": "2021-11-01T09:17:01.706029Z"
    },
    "papermill": {
     "duration": 36.754054,
     "end_time": "2022-04-12T18:08:27.508694",
     "exception": false,
     "start_time": "2022-04-12T18:07:50.754640",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Collecting pycocotools\r\n",
      "  Downloading pycocotools-2.0.4.tar.gz (106 kB)\r\n",
      "\u001b[K     |████████████████████████████████| 106 kB 253 kB/s \r\n",
      "\u001b[?25h  Installing build dependencies ... \u001b[?25l-\b \b\\\b \b|\b \b/\b \b-\b \b\\\b \b|\b \b/\b \b-\b \b\\\b \b|\b \b/\b \bdone\r\n",
      "\u001b[?25h  Getting requirements to build wheel ... \u001b[?25l-\b \b\\\b \b|\b \b/\b \bdone\r\n",
      "\u001b[?25h    Preparing wheel metadata ... \u001b[?25l-\b \b\\\b \b|\b \b/\b \bdone\r\n",
      "\u001b[?25hRequirement already satisfied: matplotlib>=2.1.0 in /opt/conda/lib/python3.7/site-packages (from pycocotools) (3.4.3)\r\n",
      "Requirement already satisfied: numpy in /opt/conda/lib/python3.7/site-packages (from pycocotools) (1.19.5)\r\n",
      "Requirement already satisfied: pyparsing>=2.2.1 in /opt/conda/lib/python3.7/site-packages (from matplotlib>=2.1.0->pycocotools) (2.4.7)\r\n",
      "Requirement already satisfied: cycler>=0.10 in /opt/conda/lib/python3.7/site-packages (from matplotlib>=2.1.0->pycocotools) (0.10.0)\r\n",
      "Requirement already satisfied: pillow>=6.2.0 in /opt/conda/lib/python3.7/site-packages (from matplotlib>=2.1.0->pycocotools) (8.2.0)\r\n",
      "Requirement already satisfied: python-dateutil>=2.7 in /opt/conda/lib/python3.7/site-packages (from matplotlib>=2.1.0->pycocotools) (2.8.0)\r\n",
      "Requirement already satisfied: kiwisolver>=1.0.1 in /opt/conda/lib/python3.7/site-packages (from matplotlib>=2.1.0->pycocotools) (1.3.2)\r\n",
      "Requirement already satisfied: six in /opt/conda/lib/python3.7/site-packages (from cycler>=0.10->matplotlib>=2.1.0->pycocotools) (1.16.0)\r\n",
      "Building wheels for collected packages: pycocotools\r\n",
      "  Building wheel for pycocotools (PEP 517) ... \u001b[?25l-\b \b\\\b \b|\b \b/\b \b-\b \b\\\b \b|\b \b/\b \b-\b \b\\\b \b|\b \bdone\r\n",
      "\u001b[?25h  Created wheel for pycocotools: filename=pycocotools-2.0.4-cp37-cp37m-linux_x86_64.whl size=273639 sha256=70abeea03bde327695292367e7e0e41230e58f296bfc63c7eea06918de7faf8d\r\n",
      "  Stored in directory: /root/.cache/pip/wheels/a3/5f/fa/f011e578cc76e1fc5be8dce30b3eb9fd00f337e744b3bba59b\r\n",
      "Successfully built pycocotools\r\n",
      "Installing collected packages: pycocotools\r\n",
      "Successfully installed pycocotools-2.0.4\r\n",
      "\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\r\n"
     ]
    }
   ],
   "source": [
    "!pip install pycocotools"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "1bf56ee4",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2022-04-12T18:08:27.553101Z",
     "iopub.status.busy": "2022-04-12T18:08:27.548547Z",
     "iopub.status.idle": "2022-04-12T18:08:29.002285Z",
     "shell.execute_reply": "2022-04-12T18:08:29.001621Z",
     "shell.execute_reply.started": "2021-11-01T09:17:21.938023Z"
    },
    "papermill": {
     "duration": 1.475209,
     "end_time": "2022-04-12T18:08:29.002426",
     "exception": false,
     "start_time": "2022-04-12T18:08:27.527217",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "# from pycocotools.coco import COCO\n",
    "import skimage.io as io\n",
    "import matplotlib.pyplot as plt\n",
    "from pathlib import Path\n",
    "from PIL import Image\n",
    "\n",
    "import pandas as pd\n",
    "import numpy as np\n",
    "from tqdm.notebook import tqdm\n",
    "import json,itertools\n",
    "from sklearn.model_selection import GroupKFold"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "01251d2e",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2022-04-12T18:08:29.044389Z",
     "iopub.status.busy": "2022-04-12T18:08:29.043797Z",
     "iopub.status.idle": "2022-04-12T18:08:29.045508Z",
     "shell.execute_reply": "2022-04-12T18:08:29.045992Z",
     "shell.execute_reply.started": "2021-11-01T09:17:23.541057Z"
    },
    "papermill": {
     "duration": 0.02499,
     "end_time": "2022-04-12T18:08:29.046157",
     "exception": false,
     "start_time": "2022-04-12T18:08:29.021167",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "# config\n",
    "class CFG:\n",
    "    data_path = '../input/sartorius-cell-instance-segmentation/'\n",
    "    nfolds = 5"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b5835073",
   "metadata": {
    "papermill": {
     "duration": 0.017838,
     "end_time": "2022-04-12T18:08:29.082918",
     "exception": false,
     "start_time": "2022-04-12T18:08:29.065080",
     "status": "completed"
    },
    "tags": []
   },
   "source": [
    "# Functions"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "abd17152",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2022-04-12T18:08:29.122797Z",
     "iopub.status.busy": "2022-04-12T18:08:29.122186Z",
     "iopub.status.idle": "2022-04-12T18:08:29.129257Z",
     "shell.execute_reply": "2022-04-12T18:08:29.129766Z",
     "shell.execute_reply.started": "2021-11-01T09:17:23.548771Z"
    },
    "papermill": {
     "duration": 0.028427,
     "end_time": "2022-04-12T18:08:29.129929",
     "exception": false,
     "start_time": "2022-04-12T18:08:29.101502",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "# From https://www.kaggle.com/stainsby/fast-tested-rle\n",
    "def rle_decode(mask_rle, shape):\n",
    "    '''\n",
    "    mask_rle: run-length as string formated (start length)\n",
    "    shape: (height,width) of array to return \n",
    "    Returns numpy array, 1 - mask, 0 - background\n",
    "\n",
    "    '''\n",
    "    s = mask_rle.split()\n",
    "    starts, lengths = [np.asarray(x, dtype=int) for x in (s[0:][::2], s[1:][::2])]\n",
    "    starts -= 1\n",
    "    ends = starts + lengths\n",
    "    img = np.zeros(shape[0]*shape[1], dtype=np.uint8)\n",
    "    for lo, hi in zip(starts, ends):\n",
    "        img[lo:hi] = 1\n",
    "    return img.reshape(shape)  # Needed to align to RLE direction\n",
    "\n",
    "# From https://newbedev.com/encode-numpy-array-using-uncompressed-rle-for-coco-dataset\n",
    "def binary_mask_to_rle(binary_mask):\n",
    "    rle = {'counts': [], 'size': list(binary_mask.shape)}\n",
    "    counts = rle.get('counts')\n",
    "    for i, (value, elements) in enumerate(itertools.groupby(binary_mask.ravel(order='F'))):\n",
    "        if i == 0 and value == 1:\n",
    "            counts.append(0)\n",
    "        counts.append(len(list(elements)))\n",
    "    return rle"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "ee3ee185",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2022-04-12T18:08:29.169240Z",
     "iopub.status.busy": "2022-04-12T18:08:29.168592Z",
     "iopub.status.idle": "2022-04-12T18:08:29.176135Z",
     "shell.execute_reply": "2022-04-12T18:08:29.176580Z",
     "shell.execute_reply.started": "2021-11-01T09:17:23.564408Z"
    },
    "papermill": {
     "duration": 0.028482,
     "end_time": "2022-04-12T18:08:29.176761",
     "exception": false,
     "start_time": "2022-04-12T18:08:29.148279",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "def coco_structure(train_df):\n",
    "    cat_ids = {name:id+1 for id, name in enumerate(train_df.cell_type.unique())}    \n",
    "    cats =[{'name':name, 'id':id} for name,id in cat_ids.items()]\n",
    "    images = [{'id':id, 'width':row.width, 'height':row.height, 'file_name':f'train/{id}.png'} for id,row in train_df.groupby('id').agg('first').iterrows()]\n",
    "    annotations=[]\n",
    "    for idx, row in tqdm(train_df.iterrows()):\n",
    "        mk = rle_decode(row.annotation, (row.height, row.width))\n",
    "        ys, xs = np.where(mk)\n",
    "        x1, x2 = min(xs), max(xs)\n",
    "        y1, y2 = min(ys), max(ys)\n",
    "        enc =binary_mask_to_rle(mk)\n",
    "        seg = {\n",
    "            'segmentation':enc, \n",
    "            'bbox': [int(x1), int(y1), int(x2-x1+1), int(y2-y1+1)],\n",
    "            'area': int(np.sum(mk)),\n",
    "            'image_id':row.id, \n",
    "            'category_id':cat_ids[row.cell_type], \n",
    "            'iscrowd':0, \n",
    "            'id':idx\n",
    "        }\n",
    "        annotations.append(seg)\n",
    "    return {'categories':cats, 'images':images,'annotations':annotations}"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0631f2ce",
   "metadata": {
    "papermill": {
     "duration": 0.018018,
     "end_time": "2022-04-12T18:08:29.213392",
     "exception": false,
     "start_time": "2022-04-12T18:08:29.195374",
     "status": "completed"
    },
    "tags": []
   },
   "source": [
    "# Data\n",
    "\n",
    "Split into folds, create annotations"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "029836d2",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2022-04-12T18:08:29.252682Z",
     "iopub.status.busy": "2022-04-12T18:08:29.252115Z",
     "iopub.status.idle": "2022-04-12T18:08:29.851596Z",
     "shell.execute_reply": "2022-04-12T18:08:29.851056Z",
     "shell.execute_reply.started": "2021-11-01T09:29:59.923618Z"
    },
    "papermill": {
     "duration": 0.620175,
     "end_time": "2022-04-12T18:08:29.851760",
     "exception": false,
     "start_time": "2022-04-12T18:08:29.231585",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "train_df = pd.read_csv(CFG.data_path + 'train.csv')\n",
    "\n",
    "gkf = GroupKFold(n_splits = CFG.nfolds)\n",
    "\n",
    "train_df[\"fold\"] = -1\n",
    "y = train_df.width.values\n",
    "\n",
    "for f, (t_, v_) in enumerate(gkf.split(X=train_df, y=y, groups=train_df.id.values)):\n",
    "    train_df.loc[v_, \"fold\"] = f\n",
    "    \n",
    "fold_id = train_df.fold.copy()\n",
    "# train_df.drop('fold', axis = 1, inplace = True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "f8b5ae3b",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2022-04-12T18:08:29.895107Z",
     "iopub.status.busy": "2022-04-12T18:08:29.894489Z",
     "iopub.status.idle": "2022-04-12T18:08:30.331212Z",
     "shell.execute_reply": "2022-04-12T18:08:30.331770Z",
     "shell.execute_reply.started": "2021-11-01T09:30:28.597348Z"
    },
    "papermill": {
     "duration": 0.461742,
     "end_time": "2022-04-12T18:08:30.331951",
     "exception": false,
     "start_time": "2022-04-12T18:08:29.870209",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "train_df[['id', 'fold', 'annotation']].to_csv('gt_fold.csv', index = False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "e7a30d2e",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2022-04-12T18:08:30.371791Z",
     "iopub.status.busy": "2022-04-12T18:08:30.371209Z",
     "iopub.status.idle": "2022-04-12T19:01:29.487529Z",
     "shell.execute_reply": "2022-04-12T19:01:29.488029Z",
     "shell.execute_reply.started": "2021-10-28T18:08:55.331199Z"
    },
    "papermill": {
     "duration": 3179.137884,
     "end_time": "2022-04-12T19:01:29.488207",
     "exception": false,
     "start_time": "2022-04-12T18:08:30.350323",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "5feb6cd187e74811b26a11f2904789d0",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "0it [00:00, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "fold 4: produced\n"
     ]
    }
   ],
   "source": [
    "all_ids = train_df.id.unique()\n",
    "# for fold in range(CFG.nfolds):\n",
    "for fold in range(4,5):    \n",
    "    train_sample = train_df.loc[fold_id != fold]\n",
    "    root = coco_structure(train_sample)\n",
    "\n",
    "    with open('annotations_train_f'+str(fold)+'.json', 'w', encoding='utf-8') as f:\n",
    "        json.dump(root, f, ensure_ascii=True, indent=4)\n",
    "        \n",
    "    valid_sample = train_df.loc[fold_id == fold]\n",
    "\n",
    "    print('fold ' + str(fold) + ': produced')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "59ace023",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2022-04-12T19:01:29.533479Z",
     "iopub.status.busy": "2022-04-12T19:01:29.530916Z",
     "iopub.status.idle": "2022-04-12T19:14:39.132442Z",
     "shell.execute_reply": "2022-04-12T19:14:39.131735Z"
    },
    "papermill": {
     "duration": 789.624429,
     "end_time": "2022-04-12T19:14:39.132772",
     "exception": false,
     "start_time": "2022-04-12T19:01:29.508343",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "4255455e4aee401da94206dacbf12962",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "0it [00:00, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "fold 4: produced\n"
     ]
    }
   ],
   "source": [
    "for fold in range(4,5):   \n",
    "    train_sample = train_df.loc[fold_id == fold]\n",
    "    root = coco_structure(train_sample)\n",
    "\n",
    "    with open('annotations_valid_f'+str(fold)+'.json', 'w', encoding='utf-8') as f:\n",
    "        json.dump(root, f, ensure_ascii=True, indent=4)\n",
    "        \n",
    "    valid_sample = train_df.loc[fold_id == fold]\n",
    "\n",
    "    print('fold ' + str(fold) + ': produced')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "ef53f999",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2022-04-12T19:14:39.183258Z",
     "iopub.status.busy": "2022-04-12T19:14:39.182315Z",
     "iopub.status.idle": "2022-04-12T20:21:08.326590Z",
     "shell.execute_reply": "2022-04-12T20:21:08.326047Z"
    },
    "papermill": {
     "duration": 3989.174532,
     "end_time": "2022-04-12T20:21:08.326781",
     "exception": false,
     "start_time": "2022-04-12T19:14:39.152249",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "11daa870e15047e0982f9193171bcea3",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "0it [00:00, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "root = coco_structure(train_df)\n",
    "\n",
    "with open('annotations_train.json', 'w', encoding='utf-8') as f:\n",
    "    json.dump(root, f, ensure_ascii=True, indent=4)\n",
    "        \n"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.10"
  },
  "papermill": {
   "default_parameters": {},
   "duration": 8006.371889,
   "end_time": "2022-04-12T20:21:09.383819",
   "environment_variables": {},
   "exception": null,
   "input_path": "__notebook__.ipynb",
   "output_path": "__notebook__.ipynb",
   "parameters": {},
   "start_time": "2022-04-12T18:07:43.011930",
   "version": "2.3.3"
  },
  "widgets": {
   "application/vnd.jupyter.widget-state+json": {
    "state": {
     "03169838da8a4086b9e810700079be65": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "1.2.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "overflow_x": null,
       "overflow_y": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "0eb660416539418994baac08102b1983": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "ProgressStyleModel",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "ProgressStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "StyleView",
       "bar_color": null,
       "description_width": ""
      }
     },
     "11daa870e15047e0982f9193171bcea3": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HBoxModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "HBoxModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "1.5.0",
       "_view_name": "HBoxView",
       "box_style": "",
       "children": [
        "IPY_MODEL_194cbedba5ea43569277559b7c3858a7",
        "IPY_MODEL_cc49488ccae04ece8e948fb072861d06",
        "IPY_MODEL_4d220078fec84d859d8390dacf169d2a"
       ],
       "layout": "IPY_MODEL_3e77ebc3b5394823929a17668926e968"
      }
     },
     "194cbedba5ea43569277559b7c3858a7": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "HTMLModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "1.5.0",
       "_view_name": "HTMLView",
       "description": "",
       "description_tooltip": null,
       "layout": "IPY_MODEL_03169838da8a4086b9e810700079be65",
       "placeholder": "​",
       "style": "IPY_MODEL_4531b71767544ccfa7792f767411b3c2",
       "value": ""
      }
     },
     "1bdd6605a3fb4c00a4ed09b9b7d89605": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "1.2.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "overflow_x": null,
       "overflow_y": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "2b1c4a816dc6455098c6b20d6495cae9": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "1.2.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "overflow_x": null,
       "overflow_y": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "301b55f1f82148979703376d5ba55189": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "ProgressStyleModel",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "ProgressStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "StyleView",
       "bar_color": null,
       "description_width": ""
      }
     },
     "3339155c9e124314a99c73e2f8beb2d2": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "HTMLModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "1.5.0",
       "_view_name": "HTMLView",
       "description": "",
       "description_tooltip": null,
       "layout": "IPY_MODEL_3529b6307d1b44b78441d7c2de542fcb",
       "placeholder": "​",
       "style": "IPY_MODEL_bc1049876ff64ee8a7082bda3608f682",
       "value": ""
      }
     },
     "336e3e21613f4438951ef6b4fbb1b520": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "1.2.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "overflow_x": null,
       "overflow_y": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "34ba1f5e0b4d4151b0bce5d5fd5e9822": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "DescriptionStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "StyleView",
       "description_width": ""
      }
     },
     "3529b6307d1b44b78441d7c2de542fcb": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "1.2.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "overflow_x": null,
       "overflow_y": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "3b3fcf4512054ce8b11acbe9b1b3e470": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "HTMLModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "1.5.0",
       "_view_name": "HTMLView",
       "description": "",
       "description_tooltip": null,
       "layout": "IPY_MODEL_b1df691d27ab497592e4957600afb821",
       "placeholder": "​",
       "style": "IPY_MODEL_9a306745cf9d44959119abe41212cccf",
       "value": " 14717/? [13:08&lt;00:00, 17.84it/s]"
      }
     },
     "3e77ebc3b5394823929a17668926e968": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "1.2.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "overflow_x": null,
       "overflow_y": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "4255455e4aee401da94206dacbf12962": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HBoxModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "HBoxModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "1.5.0",
       "_view_name": "HBoxView",
       "box_style": "",
       "children": [
        "IPY_MODEL_3339155c9e124314a99c73e2f8beb2d2",
        "IPY_MODEL_c9f022ac37e947df9183c006c4776654",
        "IPY_MODEL_3b3fcf4512054ce8b11acbe9b1b3e470"
       ],
       "layout": "IPY_MODEL_798f9dce49d744f6ac1998f219e0adcf"
      }
     },
     "4531b71767544ccfa7792f767411b3c2": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "DescriptionStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "StyleView",
       "description_width": ""
      }
     },
     "4d220078fec84d859d8390dacf169d2a": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "HTMLModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "1.5.0",
       "_view_name": "HTMLView",
       "description": "",
       "description_tooltip": null,
       "layout": "IPY_MODEL_1bdd6605a3fb4c00a4ed09b9b7d89605",
       "placeholder": "​",
       "style": "IPY_MODEL_eebd5285ff9240e3baf822a79ad76385",
       "value": " 73585/? [1:06:23&lt;00:00, 19.16it/s]"
      }
     },
     "5feb6cd187e74811b26a11f2904789d0": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HBoxModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "HBoxModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "1.5.0",
       "_view_name": "HBoxView",
       "box_style": "",
       "children": [
        "IPY_MODEL_895612fa146d49c6ba0d66dec2b1c59e",
        "IPY_MODEL_d2c53a4e38f04e9d8cfc3fbf85c016e8",
        "IPY_MODEL_f6eee9f77515491999e0c68faa3ec5d8"
       ],
       "layout": "IPY_MODEL_7b341ba494134ea4bbaef8916784a22f"
      }
     },
     "60b5aab2fec94800be2691a1f811123a": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "DescriptionStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "StyleView",
       "description_width": ""
      }
     },
     "62d2cf1ea8d243b3b6016bd4f054192f": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "1.2.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "overflow_x": null,
       "overflow_y": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": "20px"
      }
     },
     "719c9fd162b6485d86b9f2a2c0639878": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "1.2.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "overflow_x": null,
       "overflow_y": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": "20px"
      }
     },
     "798f9dce49d744f6ac1998f219e0adcf": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "1.2.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "overflow_x": null,
       "overflow_y": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "7b341ba494134ea4bbaef8916784a22f": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "1.2.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "overflow_x": null,
       "overflow_y": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "895612fa146d49c6ba0d66dec2b1c59e": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "HTMLModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "1.5.0",
       "_view_name": "HTMLView",
       "description": "",
       "description_tooltip": null,
       "layout": "IPY_MODEL_2b1c4a816dc6455098c6b20d6495cae9",
       "placeholder": "​",
       "style": "IPY_MODEL_60b5aab2fec94800be2691a1f811123a",
       "value": ""
      }
     },
     "9a306745cf9d44959119abe41212cccf": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "DescriptionStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "StyleView",
       "description_width": ""
      }
     },
     "b1df691d27ab497592e4957600afb821": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "1.2.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "overflow_x": null,
       "overflow_y": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "bc1049876ff64ee8a7082bda3608f682": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "DescriptionStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "StyleView",
       "description_width": ""
      }
     },
     "bf00ccee9d704362baaeb46369f00341": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "ProgressStyleModel",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "ProgressStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "StyleView",
       "bar_color": null,
       "description_width": ""
      }
     },
     "c9f022ac37e947df9183c006c4776654": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "FloatProgressModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "FloatProgressModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "1.5.0",
       "_view_name": "ProgressView",
       "bar_style": "success",
       "description": "",
       "description_tooltip": null,
       "layout": "IPY_MODEL_719c9fd162b6485d86b9f2a2c0639878",
       "max": 1.0,
       "min": 0.0,
       "orientation": "horizontal",
       "style": "IPY_MODEL_bf00ccee9d704362baaeb46369f00341",
       "value": 1.0
      }
     },
     "cc49488ccae04ece8e948fb072861d06": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "FloatProgressModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "FloatProgressModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "1.5.0",
       "_view_name": "ProgressView",
       "bar_style": "success",
       "description": "",
       "description_tooltip": null,
       "layout": "IPY_MODEL_d153aaed198d4f459231304a301baafa",
       "max": 1.0,
       "min": 0.0,
       "orientation": "horizontal",
       "style": "IPY_MODEL_0eb660416539418994baac08102b1983",
       "value": 1.0
      }
     },
     "d153aaed198d4f459231304a301baafa": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "1.2.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "overflow_x": null,
       "overflow_y": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": "20px"
      }
     },
     "d2c53a4e38f04e9d8cfc3fbf85c016e8": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "FloatProgressModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "FloatProgressModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "1.5.0",
       "_view_name": "ProgressView",
       "bar_style": "success",
       "description": "",
       "description_tooltip": null,
       "layout": "IPY_MODEL_62d2cf1ea8d243b3b6016bd4f054192f",
       "max": 1.0,
       "min": 0.0,
       "orientation": "horizontal",
       "style": "IPY_MODEL_301b55f1f82148979703376d5ba55189",
       "value": 1.0
      }
     },
     "eebd5285ff9240e3baf822a79ad76385": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "DescriptionStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "StyleView",
       "description_width": ""
      }
     },
     "f6eee9f77515491999e0c68faa3ec5d8": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "HTMLModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "1.5.0",
       "_view_name": "HTMLView",
       "description": "",
       "description_tooltip": null,
       "layout": "IPY_MODEL_336e3e21613f4438951ef6b4fbb1b520",
       "placeholder": "​",
       "style": "IPY_MODEL_34ba1f5e0b4d4151b0bce5d5fd5e9822",
       "value": " 58868/? [52:55&lt;00:00, 17.34it/s]"
      }
     }
    },
    "version_major": 2,
    "version_minor": 0
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
